Skip to content

[pull] main from MetaMask:main#383

Merged
pull[bot] merged 5 commits into
Reality2byte:mainfrom
MetaMask:main
Dec 5, 2025
Merged

[pull] main from MetaMask:main#383
pull[bot] merged 5 commits into
Reality2byte:mainfrom
MetaMask:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Dec 5, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

sethkfman and others added 5 commits December 4, 2025 23:43
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR updates the Android E2E build step and applies an if check on
the caching and build step if the fingerprint finds a hit.

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->


CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<img width="985" height="573" alt="Screenshot 2025-12-04 at 3 22 37 PM"
src="https://github.com/user-attachments/assets/aef13cfc-8a7b-489c-9e6c-ccfcf0bf54e7"
/>

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is
generating a summary for commit
e5e31e2. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

fix: unified keyboard actions background color

## **Changelog**

CHANGELOG entry:null

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/MDP-399

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

| before | after |
| -------- | ------- |
|
![before](https://github.com/user-attachments/assets/73ec43f2-799d-4a42-8a37-c53727802529)
|
![after](https://github.com/user-attachments/assets/b1cda6b3-6927-4bf3-b63a-f4866e7394a6)
|

### **Before**

`~`

### **After**

`~`

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Unifies quick-amount/keyboard action button styling to a muted
background without borders across Stake and Earn views, updating
snapshots accordingly.
> 
> - **UI Styling**
> - Set quick-amount buttons to `colors.background.muted` and remove
borders in `app/components/UI/Stake/components/QuickAmounts.tsx`.
> - Align Earn Stake/Unstake quick-amount buttons to muted background
(`#3c4d9d0f`) with no borders in snapshots.
> - **Tests**
> - Update Jest snapshots for `EarnInputView` and
`EarnWithdrawInputView` to reflect new button background and removed
borders.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f037f8a. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

update background color for earn upsell banner

## **Changelog**

CHANGELOG entry:null

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/MDP-396

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

### Light Mode (Ignore the font weight issue its not related to this PR)

| before | after |
| -------- | ------- |
|
![before](https://github.com/user-attachments/assets/3b80695c-6afc-4af6-8034-06b926b04b55)
|
![after](https://github.com/user-attachments/assets/4155ca05-9130-4a87-a270-617f291b8eb3)
|


### Dark Mode (Ignore the font weight issue its not related to this PR)

| before | after |
| -------- | ------- |
|
![before](https://github.com/user-attachments/assets/b2f8f5cc-3e3b-4da4-9f05-c5625fc1e3a7)
|
![after](https://github.com/user-attachments/assets/b0e36e1b-9498-4edd-8c3d-ac7dabce3654)
|

### **Before**

`~`

### **After**

`~`

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Change UpsellBannerHeader container background from
`colors.background.alternative` to `colors.background.section`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
83ebad4. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->
### Description
This PR restores the WebDriverIO (wdio) helper files that are required
dependencies for the Appwright performance tests.
### Changes
Restored Files:

- wdio/helpers/Gestures.js - Provides cross-platform gesture utilities
including tap, long press, swipe (up/down/left/right), and text input
methods. Uses percentage-based coordinates for reliable multi-device
support.
- wdio/helpers/Selectors.js - Provides platform-specific element
selection utilities supporting iOS class chains and Android content
descriptors, XPath queries by text/resource-id, and CSS selectors.

Why
The performance tests in appwright/tests/performance/ depend on these
wdio helper modules. These files were previously removed but are still
required as imports for the performance test infrastructure to function
correctly.
## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Restore WDIO helper modules adding cross‑platform gesture actions and
platform-aware selectors required by performance tests.
> 
> - **Helpers**:
> - Add `wdio/helpers/Gestures.js` with tap/long‑press, percentage-based
swipes (up/down/left/right), coordinate taps, text input, and
visibility-with-swipe utilities.
> - Add `wdio/helpers/Selectors.js` with platform-aware selectors (iOS
class chains, Android content-desc/resource-id) and XPath/CSS helpers.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
7e11a4d. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Curtis David <Curtis.David7@gmail.com>
## **Description**

This PR adds slip44 wildcard matching support to the Deposit
`useCryptoCurrencies` hook, aligning it with the existing behavior in
the Aggregator flow.

**Reason for change:**
When navigating to the Deposit flow from the Asset Details page with a
native asset (e.g., ETH), the intent contains a wildcard asset ID like
`eip155:1/slip44:.`. However, the Deposit SDK returns native tokens with
specific slip44 coin types (e.g., `eip155:1/slip44:60`). The direct
string comparison was failing to match these, causing the native token
not to be pre-selected.

**Solution:**
Added fallback logic that parses the CAIP-19 asset ID and matches any
token with the same `chainId` and `slip44` namespace when the direct
match fails. This mirrors the existing behavior in the Aggregator
`useCryptoCurrencies` hook.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #23441

## **Manual testing steps**

```gherkin
Feature: Native token selection in Deposit flow

  Scenario: user navigates to Deposit from Asset Details with native token
    Given the user is on the Asset Details page for ETH (or any native token)
    And the Deposit flow is enabled for the user's region

    When user taps the "Buy" button
    Then the Deposit flow opens with ETH pre-selected as the cryptocurrency
```

## **Screenshots/Recordings**

### **Before**



https://github.com/user-attachments/assets/5a7b1ca1-3939-4ab1-a693-bf8579814e98



### **After**



https://github.com/user-attachments/assets/293d0de4-a430-43d3-b0bd-c97315baecd4



## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Adds slip44 wildcard CAIP-19 intent matching to pre-select native
tokens in the Deposit flow and introduces focused tests for this
behavior.
> 
> - **Hook**
(`app/components/UI/Ramp/Deposit/hooks/useCryptoCurrencies.ts`):
> - Add slip44 wildcard handling by parsing CAIP-19
(`parseCAIP19AssetId`) when direct `assetId` match fails, selecting a
native token with the same `chainId` and `slip44` namespace.
>   - Preserve direct `assetId` match precedence over wildcard matching.
>   - Minor refactor to use a mutable `intentCrypto` before selection.
> - **Tests**
(`app/components/UI/Ramp/Deposit/hooks/useCryptoCurrencies.test.ts`):
> - Add cases for slip44 wildcard selecting native token (same/different
`chainId`).
>   - Add fallback to first token when no native match found.
>   - Confirm direct match is preferred over wildcard.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
7d6606a. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@pull pull Bot locked and limited conversation to collaborators Dec 5, 2025
@pull pull Bot added the ⤵️ pull label Dec 5, 2025
@pull pull Bot merged commit f053689 into Reality2byte:main Dec 5, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants